<?php
/**
 * 变量操作
 *
 * Created		: 2011-06-14
 * Modified		: 2011-07-06
 * @link		: http://www.qixbo.com
 * @copyright	: [Qixbo.Com] (c) 2011
 * @version		: 0.2.0
 * @author		: Joseph Chen (jsph.chen@gmail.com)
 */
class Variable
{

	/**
	 * 判断变量是否纯数字(整型或字符串,整数形式浮点型)
	 * @param int | string $s
	 * @return Boolean
	 */
	public static function isDigit($s) {
		// 分别判断整型?纯数字字符串?整数形式浮点型
		return (is_numeric($s) && strpos($s, '.')===false);
	}

	/**
	 * 判断变量是否纯数字ID的组合字符串(数字字符串用","分隔)
	 * @param int | string $s
	 * @return Boolean
	 */
	public static function digitSepBunch($s) {
		return (preg_match('/^(?:[\d]+\,{0,1})+[\d]+$/', $s));
	}

	/**
	 * 将二维数组转成简单键值对的一维数组
	 * @param array $arr
	 * @param string $idField
	 * @param string $nameField
	 */
	public static function array2simple($arr, $idField='id', $nameField='name')
	{
		$tmp = array();
		if (!is_array($arr))
		{
			return array();
		}
		foreach ($arr as $item)
		{
			$key = $item[$idField];
			$tmp[$key] = $item[$nameField];
		}
		return $tmp;
	}
	
	/**
	 * 将数组转换成某字段为KEY的数组
	 * @param array $arr
	 * @param string $field
	 */
	public static function array2IdArray($arr, $field) 
	{
		$_arr = array();
		if (!is_array($arr))
		{
			return array();
		}
		foreach ($arr as $v) {
			$_arr[$v[$field]] = $v;
		}
		return $_arr;
	}

	/**
	 * 递归将对象转换成数组
	 * @param object $obj
	 */
	public static function obj2arr($obj)
	{
		$obj = (array)$obj;
		foreach ($obj as $k => $v) {
			if (is_object($v)||is_array($v)) {
				$obj[$k] = self::obj2arr($v);
			} else {
				$obj[$k] = $v;
			}
		}
		return $obj;
	}

	public static function joinQuotesStr($arr)
	{
		return '\''.join('\',\'', $arr).'\'';
	}
}
